/* ************************************************************************
> File Name:     3.c
> Author:        zhfu
> mail:          3346897597@qq.com
> Created Time:  2022年05月09日 星期一 21时58分42秒
> Description:   
 ************************************************************************/
#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
#define MAXLINE 80

/*
 *父进程调用一直调用write把管道写满将会阻塞进程 ./a.out & 然后ps u可以看到父进程被阻塞，
 *其子进程变成僵尸进程，因为子进程结束但没有调用wait或waitpid，而父进程也没有结束，
 *只有父进程结束，它的子进程才会过继给init然后init负责消灭已经结束的子进程
 */
int main(void)
{
    int n;
    int fd[2];
    pid_t pid;
    char line[MAXLINE];

    if (pipe(fd) < 0){
        perror("pipe");
        exit(1);
    }
    //close(fd[0]);

    if ((pid = fork()) < 0){
        perror("fork");
        exit(1);
    }
    
    if (pid > 0){
        //close(fd[0]);
        while (1){
            write(fd[1], "hello world\n", 12);
        }
    }
    /*
    if (pid == 0){
        //close(fd[1]);
        n = read(fd[0], line, MAXLINE);
        printf("%d\n", n);
    }
    */
    return 0;
}
